package pe.edu.upc.dew.grupo3a.dao;

import java.util.List;

import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;

import pe.edu.upc.dew.grupo3a.model.Cliente;
import pe.edu.upc.dew.grupo3a.model.Pelicula;

public class ClienteDaoJdbc extends SimpleJdbcDaoSupport implements
ClienteDao{

	@Override
	public Cliente getClientePorCodigo(String codigo) {
		try {
			return getSimpleJdbcTemplate()
			.queryForObject(
					"select codigocliente,apellidos,nombres ,edad,sexo,dni,email from cliente " +
					"where codigocliente=?",
					new BeanPropertyRowMapper<Cliente>(Cliente.class),
					codigo);
			
		} catch(DataAccessException ex ){
			return null;
		}
	}

	@Override
	public List<Cliente> getClientes() {
		return getSimpleJdbcTemplate().query(
				"select codigocliente,apellidos,nombres ,edad,sexo,dni,email from cliente",
				new BeanPropertyRowMapper<Cliente>(Cliente.class));	
	}

	@Override
	public void actualizarCliente(Cliente cliente) {
		getSimpleJdbcTemplate().update("Update cliente set " +
				"apellidos=?, nombres=?, edad=?, sexo=?, dni=?,email=? " +
				"where codigocliente=?",
				cliente.getApellidos(),cliente.getNombres(),cliente.getEdad(),
				cliente.getSexo(),cliente.getDni(),cliente.getCorreo(),cliente.getCodigoCliente());
	}

	@Override
	public void insertarCliente(Cliente cliente) {
		getSimpleJdbcTemplate().update("Insert into cliente (codigocliente, apellidos,nombres,edad, " + 
				"sexo,dni,email) values  (?,?,?,?,?,?,?)",
				cliente.getCodigoCliente(), cliente.getApellidos(),cliente.getNombres(),
				cliente.getEdad(), cliente.getSexo(),cliente.getDni(),cliente.getCorreo());
	}

	@Override
	public void eliminarCliente(String codigo) {
		getSimpleJdbcTemplate().update("Delete from cliente where  codigocliente = ?",
				codigo);
	}

}
